package com.yanjiali.service;

import com.yanjiali.entity.CollectContent;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yanjiali.model.R;
import com.yanjiali.model.resp.GetAllCollectContentByUserIdResp;
import com.yanjiali.model.resp.GetCollectContentBySecondLevelIdResp;
import com.yanjiali.model.resp.SearchCollectByTitleResp;

/**
* @Package: com.yanjiali.service
* @Author: yanjiali
* @Created: 2025/4/19 15:06
*/
public interface CollectContentService extends IService<CollectContent> {

    /**
     * 判断对应文章是否已经收藏
     * @param articleId
     * @return
     */
    R<Boolean> isTheArticleFavorited(Long articleId);

    /**
     * 通过收藏内容标题获取对应收藏数据集合
     * @param title
     * @return
     */
    R<SearchCollectByTitleResp> searchCollectByTitle(String title);

    /**
     * 删除单个收藏内容数据
     * @param id
     * @return
     */
    R deleteASingleCollection(String id);

    /**
     * 清除用户所有收藏记录
     * @return
     */
    R deleteAll();

    /**
     * 通过二级目录id获取其中对应收藏内容
     * @param id
     * @return
     */
    R<GetCollectContentBySecondLevelIdResp> getCollectContentBySecondLevelId(Long id);

    /**
     * 获取用户所有收藏内容
     * @return
     */
    R<GetAllCollectContentByUserIdResp> getAllCollectContentByUserId();
}